Exception in thread "main" java.lang.StackOverflowError
Exception in thread "main" java.lang.StackOverflowError
บทความนี้เรามาทำความรู้จักกับ StackOverflowError กัน ซึ่งจะมีข้อความที่เกิดขึ้นจะแสดงข้อความประมาณด้านล่างException in thread "main" java.lang.StackOverflowError at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9) at com.doesystem.CodeFromDoesystem.recursiveException(CodeFromDoesystem.java:9)จาก Error ข้างบน จะเห็นว่าเป็น StackOverflowError
ดังนั้นลองมาดูโค้ดที่ทำให้เกิด Exception กัน
package com.doesystem; public class CodeFromDoesystem { public static void main(String[] args) throws Exception { recursiveException(); } public static void recursiveException(){ recursiveException(); } }จากข้อความ CodeFromDoesystem.java:9 ให้เราลองไปดูที่บรรทัดที่ 9 จะเห็นว่า มีการเรียก method ที่ชื่อว่า recursiveException() ซึ่ง method ที่เรียกก็คือ recursiveException() แสดงว่า method นี้เรียกตัวของมันเองไม่มีที่สิ้นสุด